package com.ynny.chapter09.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

@RestController
@RequestMapping("/files")
public class UploadFileController {

    @Value(value = "D:/upload/")
    String savePath;

    //form表单形式上传文件
    @PostMapping("/upload01")
    public String upload01(@RequestParam(name = "picture")
                               MultipartFile picture) throws IOException {
        System.out.println("文件名称：" + picture.getOriginalFilename());
        System.out.println("文件大小: " + picture.getSize());
        //1.上传文件路径  D:/upload/
        //2.新建文件保存 上传过来的文件   File
        File file = new File(savePath);
        if (!file.exists() || !file.isDirectory()){
            file.mkdirs();
        }
        //3.获取文件信息 名称
        String originalFilename = picture.getOriginalFilename();
        // 新建一个文件
        // D:/upload/sefddsfwdowerjweoilogo.png
        File newFile = new File(savePath + UUID.randomUUID() + originalFilename);
        //保存文件
        picture.transferTo(newFile);
        return "success";
    }

    /**
     *  上传文件至服务器后
     *  服务器新建一个文件出来
     *  进行保存
     *
     *  本地磁盘路径 隐射  网络访问文件
     */

    @PostMapping("/upload02")
    public String upload02(@RequestParam(name = "img")
                           MultipartFile img) throws IOException {
        System.out.println("文件名称：" + img.getOriginalFilename());
        System.out.println("文件大小: " + img.getSize());
        //1.上传文件路径  D:/upload/
        //2.新建文件保存 上传过来的文件   File
        File file = new File(savePath);
        if (!file.exists() || !file.isDirectory()){
            file.mkdirs();
        }
        //3.获取文件信息 名称
        String originalFilename = img.getOriginalFilename();
        // 新建一个文件
        // D:/upload/sefddsfwdowerjweoilogo.png
        UUID uuid = UUID.randomUUID();
        String res = savePath + uuid + originalFilename;
        File newFile = new File(res);
        //保存文件
        img.transferTo(newFile);
        return "/upload/" + uuid + originalFilename;
    }
}
